package cn.moefly.common.annotation;

import org.springframework.context.event.EventListener;
import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

/**
 * 注解在方法上，开启异步事件处理
 * 如果使用{@link EventListener}则仍为同步处理
 *
 * Note on the method, open asynchronous event processing
 * If {@link EventListener} is used, it will still be synchronized
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@EventListener
public @interface AsyncEventListener {


    @AliasFor("executor")
    String value() default "default";


    /**
     * 使用的线程池
     * executor Name
     */
    @AliasFor("value")
    String executor() default "default";
}